<?php

class Mail_template extends Admin_Controller
{

	public function __construct()
	{
		parent::__construct();

		$this->load->model(array('mail_template_model'));
	}

	public function add()
	{
		if (empty($_POST))
		{
			$this->template->load('mail_template/add');
		}
		else
		{
			// VALIDATION
			$this->load->library('form_validation');
			$this->form_validation->set_rules('name', 'Şablon Adı', 'trim|required|htmlspecialchars|max_length[255]');
			$this->form_validation->set_rules('content', 'İçerik', 'trim|required|base64_encode');

			if (!$this->form_validation->run())
			{
				ajax_response($this->form_validation->error_string());
			}

			// CONTINUE

			$data = array(
				'user_id' => $this->auth->uid(),
				'name' => $this->input->post('name'),
				'content' => $this->input->post('content'),
				'date_add' => date('Y-m-d H:i:s')
			);

			$this->mail_template_model->add($data);
			
			set_notify('Şablonunuz başarı ile oluşturulmuştur.');

			$json = array(
				'error' => FALSE,
				'msg' => 'Şablonunuz başarı ile oluşturulmuştur.',
				'redirect' => site_url('backend/mail_template/index')
			);
			ajax_response($json);			
		}
	}

	public function index()
	{
		$limit = 20;
		$offset = _get('per_page', 0);

		// templates
		$options = array('user_id' => $this->auth->uid());
		$result = $this->mail_template_model->gets($options);

		// PAGINATION
		$pagination = create_pagination(uri_string() . "/?", $result['total_rows'], $limit);

		// DATA
		$data = array(
			'result' => $result,
			'pagination' => $pagination
		);

		$this->template->load('mail_template/index', $data);
	}

	public function preview($id)
	{
		$template = $this->mail_template_model->get($id);

		// encode content
		$template->content = base64_decode($template->content);
		
		$this->output
			->set_content_type('text/html')
			->set_output($template->content);
	}

	public function edit($id)
	{
		if (empty($_POST))
		{
			$template = $this->mail_template_model->get($id);

			// encode content
			$template->content = base64_decode($template->content);

			// DATA
			$data = array('template' => $template);

			$this->template->load('mail_template/edit', $data);
		}
		else
		{

			// VALIDATION
			$this->load->library('form_validation');
			$this->form_validation->set_rules('template_id', 'Şablon ID', 'trim|required|numeric');
			$this->form_validation->set_rules('name', 'Şablon Adı', 'trim|required|htmlspecialchars|max_length[255]');
			$this->form_validation->set_rules('content', 'İçerik', 'trim|required|base64_encode');

			if (!$this->form_validation->run())
			{
				ajax_response($this->form_validation->error_string());
			}

			// CONTINUE

			$data = array(
				'name' => $this->input->post('name'),
				'content' => $this->input->post('content'),
			);

			// where
			$options = array(
				'id' => $this->input->post('template_id'),
				'user_id' => $this->auth->uid()
			);

			$this->mail_template_model->edit($data, $options);
			
			set_notify('Şablonunuz başarı ile düzenlendi.');
			
			$json = array(
				'error' => FALSE,
				'msg' => 'Şablonunuz başarı ile düzenlendi.',
				'redirect' => site_url('backend/mail_template/index')
			);
			ajax_response($json);
		}

	}

	public function delete($id)
	{
		$options = array(
			'id' => $id,
			'user_id' => $this->auth->uid()
		);
		$this->mail_template_model->delete($options);
		
		set_notify('Şablon silindi.');
		
		redirect($_SERVER['HTTP_REFERER']);
	}
}

/* End of file mail_template.php */
